package org.jeecg.modules.app.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @Description: 应用信息
 * @Author: sean
 * @Date:   2024-12-16
 * @Version: V1.0
 */
@Data
@TableName("app_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="app_info对象", description="应用信息")
public class AppInfo implements Serializable {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
	/**应用类型 1-客户应用 2-管理应用*/
	@Excel(name = "应用类型 1-客户应用 2-管理应用", width = 15)
    @ApiModelProperty(value = "应用类型 1-客户应用 2-管理应用")
    private String appType;
    @TableField(exist = false)
    private String appTypeTxt;
	/**应用编号*/
	@Excel(name = "应用编号", width = 15)
    @ApiModelProperty(value = "应用编号")
    private String appCode;
	/**应用名称*/
	@Excel(name = "应用名称", width = 15)
    @ApiModelProperty(value = "应用名称")
    private String appName;
	/**应用logo*/
	@Excel(name = "应用logo", width = 15)
    @ApiModelProperty(value = "应用logo")
    private String appLogo;
	/**应用说明*/
	@Excel(name = "应用说明", width = 15)
    @ApiModelProperty(value = "应用说明")
    private String appInfo;
	/**应用描述*/
	@Excel(name = "应用描述", width = 15)
    @ApiModelProperty(value = "应用描述")
    private String appDesc;
	/**应用截图*/
	@Excel(name = "应用截图", width = 15)
    @ApiModelProperty(value = "应用截图")
    private String appImage;
    @TableField(exist = false)
    private List<String> imageList;
	/**归属运营商*/
    @ApiModelProperty(value = "归属运营商")
    private String sysOrgCode;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;
	/**修改人*/
    @ApiModelProperty(value = "修改人")
    private String updateBy;
    /**更新时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    private LocalDateTime updateTime;
    @ApiModelProperty(value = "租户id")
    private Integer tenantId;
	/**是否删除（0：否、1：是）*/
	@Excel(name = "是否删除（0：否、1：是）", width = 15)
    @ApiModelProperty(value = "是否删除（0：否、1：是）")
    @TableLogic(value="0", delval = "1")
    private Integer isDelete;

    @TableField(exist = false)
    private ArrayNode clientJson;
}
